#include "Timer.h"

MyTimer::MyTimer(QWidget *parent) : QWidget(parent)
{
    // 创建布局和标签
    layout = new QHBoxLayout(this);  // 使用 QHBoxLayout 使日期和时间水平排列
    clockLabel = new QLabel(this);   // 将 this 作为父部件，使标签成为 MyTimer 的子部件
    dateLabel = new QLabel(this);    // 创建显示日期的标签

    // 创建并配置定时器
    timer = new QTimer(this);
    connect(timer, &QTimer::timeout, this,[=]() {
        // 更新时间和日期标签
        clockLabel->setText(QTime::currentTime().toString("HH:mm:ss"));
        dateLabel->setText(QDate::currentDate().toString("yyyy-MM-dd dddd")); // 显示完整的日期和星期
    });
    timer->start(1000); // 每秒更新一次

    // 设置字体和字号
    QFont font = clockLabel->font();  // 获取当前字体
    font.setFamily("Arial");          // 设置字体
    font.setPointSize(36);            // 设置字号
    font.setBold(true);               // 设置字体加粗
    clockLabel->setFont(font);        // 应用字体设置

    // 设置日期标签的字体和样式
    QFont dateFont = dateLabel->font();
    dateFont.setFamily("Arial");
    dateFont.setPointSize(18);
    dateFont.setBold(false);          // 日期不需要加粗
    dateLabel->setFont(dateFont);

    dateLabel->setAlignment(Qt::AlignCenter);
    clockLabel->setAlignment(Qt::AlignCenter);

    // 设置背景和边框
    setStyleSheet("background-color: #f0f0f0; border: 1px solid #ddd; border-radius: 10px;");

    // 添加阴影效果
    QGraphicsDropShadowEffect *shadowEffect_1 = new QGraphicsDropShadowEffect;
    shadowEffect_1->setBlurRadius(15);
    shadowEffect_1->setOffset(3, 3);
    shadowEffect_1->setColor(QColor(0, 0, 0, 80)); // 半透明黑色

    clockLabel->setGraphicsEffect(shadowEffect_1);

    QGraphicsDropShadowEffect *shadowEffect_2 = new QGraphicsDropShadowEffect;
    shadowEffect_2->setBlurRadius(15);
    shadowEffect_2->setOffset(3, 3);
    shadowEffect_2->setColor(QColor(0, 0, 0, 80)); // 半透明黑色

    dateLabel->setGraphicsEffect(shadowEffect_2);

    // 设置标签的颜色和样式
    clockLabel->setStyleSheet("color: #333;");
    dateLabel->setStyleSheet("color: #555;");

    // 将标签添加到布局中
    layout->addWidget(dateLabel);
    layout->addWidget(clockLabel);

    // 设置布局
    setLayout(layout);
}

